package com.qianxun.spider.annote;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * @author: huwei
 * @date: 2020/6/29 17:53
 * @version: 1.0.0
 */
@Retention(RUNTIME)
@Target({FIELD})
public @interface SpiderBeanField {
    /**
     * 是否将值设置为当前请求地址，若是，则将不在解析selector
     * @return
     */
    boolean isSetCurrentUrl() default false;

    /**
     * 选择器，指定解析文本
     * @return
     */
    String selector() default "";

    /**
     * 字段值所对应解析文本的属性值，如： text ，href ，src ，value等
     * @return
     */
    String valueKey() default "";

    /**
     * 字段值对应是另一个bean对象
     * @return
     */
    Class<?> spiderBeanClass() default SpiderBean.class;

    /**
     * 字段值是否为一个集合类型
     * @return
     */
    boolean collection() default false;

    /**
     * 字段为一个url地址，并将该地址添加到爬虫任务列表中
     * @return
     */
    boolean addTaskUrl() default false;

    /**
     * 字段为一个post请求字段，反之为get
     * @return
     */
    boolean postRequest() default false;

    /**
     * 是否是一个url地址；当该url值是uri时，为其补充当前的url域名
     * @return
     */
    boolean url() default  false;
}
